{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Lecture 9 - Uncertainty Propagation: Advanced Monte Carlo Sampling\n",
    "\n",
    "## Objectives\n",
    "\n",
    "+ To use importance sampling to accelerate MC\n",
    "+ To use latin hyper-cube designs to accelerate MC in moderate dimensions\n",
    "+ To propagate uncertainty through an initial value problem\n",
    "\n",
    "## Readings\n",
    "\n",
    "+ These notes.\n",
    "+ Monte Carlo Strategies in Scientific Computing (Jun S. Liu, 2001): Chapters 1 and 2.\n",
    "+ Monte Carlo Statistical Methods (Christian P. Robert and George Casella, 1999): Chapter 3.\n",
    "+ McKay, M.D.; Beckman, R.J.; Conover, W.J. (May 1979). A Comparison of Three Methods for Selecting Values of Input Variables in the Analysis of Output from a Computer Code. Technometrics (JSTOR Abstract) (American Statistical Association) 21 (2): 239–245. doi:10.2307/1268522. ISSN 0040-1706. JSTOR 1268522. OSTI 5236110"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import scipy.stats as st\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import seaborn as sns\n",
    "sns.set_style('white')\n",
    "sns.set_context('talk')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Importance Sampling\n",
    "Let $X$ be a random variable with probability density $p(x)$ and $f(x)$ be a function.\n",
    "As in the lecture 13, we wish to estimate the expectation:\n",
    "$$\n",
    "I = \\mathbb{E}_p[f(X)]=\\int f(x)p(x)dx.\n",
    "$$\n",
    "Note that we have explicitly marked the expectation operator with $p$.\n",
    "This is because in a while we will change $p$ to something else.\n",
    "\n",
    "The idea in *importance sampling* is to re-write $I$ as an expectation with respect to another probability density, say $q(x)$.\n",
    "The only requirement is that the support of $q(x)$ must be broader than the support of $p(x)$ ($q(x)$ must be positive wherever $p(x)$ is positive).\n",
    "Here we go:\n",
    "$$\n",
    "I = \\mathbb{E}_p[f(X)] = \\int f(x)p(x)dx = \\int \\frac{f(x)p(x)}{q(x)}q(x)dx = \\mathbb{E}_q\\left[\\frac{f(x)p(x)}{q(x)}\\right].\n",
    "$$\n",
    "This suggests that you can estimate $I$ by sampling from $q(x)$ instead of $p(x)$.\n",
    "A trivial estimator is:\n",
    "$$\n",
    "I_{n} = \\frac{1}{n}\\sum_{j=1}^n\\frac{f(X_j)p(X_j)}{q(X_j)}, \n",
    "$$\n",
    "where $X_1,\\dots,X_n\\sim q$ iid.\n",
    "\n",
    "Why on earth is this useful?\n",
    "\n",
    "+ First, it may be much easier to sample from $q(x)$ than it is to sample from $p(x)$.\n",
    "+ You can reuse samples from $q(x)$ with different $f(x)$ and different $p(x)$.\n",
    "+ With the right choice of $q(x)$ you can actually reduce the variance of the MC estimator.\n",
    "\n",
    "Let's see how it works in practice."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example: Small Tail Probabilities (Casella 3.11)\n",
    "Let $X\\sim \\mathcal{N}(0,1)$ and assume that we want to compute:\n",
    "$$\n",
    "I = \\mathbb{P}[X > 4.5].\n",
    "$$\n",
    "The standard MC estimator is:\n",
    "$$\n",
    "I_n = \\frac{1}{n}\\sum_{j=1}^n1_{[4.5,+\\infty]}(X_j),\n",
    "$$\n",
    "for $X_j\\sim \\mathcal{N}(0,1)$ iid.\n",
    "Let's see how it does."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I_n = 0.00e+00 +- 0.00e+00\n"
     ]
    }
   ],
   "source": [
    "num_mc = 10000\n",
    "s = 0.\n",
    "s2 = 0.\n",
    "for i in range(num_mc):\n",
    "    x = np.random.randn()\n",
    "    if x > 4.5:\n",
    "        s += 1.\n",
    "        s2 += 1.\n",
    "I_n = s / num_mc\n",
    "V_n = (s2 / num_mc - I_n ** 2) / num_mc\n",
    "print('I_n = %1.2e +- %1.2e' % (I_n, 2 * np.sqrt(V_n)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It doesn't look right for $n=10,000$. We did not count a single event. You would have to go to $n=1,000,000$ to hit one or two events.\n",
    "To get an accurate answer you probably need hundrends of millions of samples.\n",
    "\n",
    "Let's see if we can remedy this situtation with importance sampling.\n",
    "Ideally, we only want to sample $X$'s that are greater than $4.5$.\n",
    "Let us introduce a random variable $Y\\sim \\mathcal{TE}(4.5, 1)$ following an exponential distribution with rate parameter $1$ which is truncated at $4.5$.\n",
    "The density of $Y$ is:\n",
    "$$\n",
    "q(y) = \\frac{e^{-y}}{c}1_{[4.5,+\\infty)}(y),\n",
    "$$\n",
    "where $c$ is a normalization constant.\n",
    "To find the normalization constant we impose:\n",
    "$$\n",
    "\\int q(y) dy = 1 \\Rightarrow c = \\int_0^{+\\infty}e^{-y}1_{[4.5,+\\infty)}(y)dy = \\int_{4.5}^{+\\infty}e^{-y}dy = \\left[-e^{-y}\\right]_{4.5}^{+\\infty}=e^{-4.5}.\n",
    "$$\n",
    "So, the density becomes:\n",
    "$$\n",
    "q(y) = e^{-(y-4.5)}1_{[4.5,+\\infty)}(y).\n",
    "$$\n",
    "Let's visualize it comparing it to the standard normal."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "x = np.linspace(-4., 10., 200)\n",
    "p = st.norm.pdf(x)\n",
    "q = np.exp(-(x-4.5))\n",
    "q[x < 4.5] = 0.\n",
    "ax.plot(x, p, label='$p(x)$')\n",
    "ax.plot(x, q, label='$q(x)$')\n",
    "ax.set_xlabel('$x$')\n",
    "ax.set_ylabel('Probability density')\n",
    "plt.legend(loc='best');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The importance sampling estimator is:\n",
    "$$\n",
    "I_{2,n} = \\frac{1}{n}\\sum_{j=1}^n\\frac{f(X_j)p(X_j)}{q(X_j)}=\\frac{1}{n\\sqrt{2\\pi}}\\sum_{j=1}^ne^{-\\frac{1}{2}X_j^2+X_j-4.5},\n",
    "$$\n",
    "for $X_1,\\dots,X_n\\sim q$ iid.\n",
    "Let's see what we are going to get:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I_n = 3.4494e-06 +- 8.8576e-08\n"
     ]
    }
   ],
   "source": [
    "num_mc = 10000\n",
    "s = 0.\n",
    "s2 = 0.\n",
    "for i in range(num_mc):\n",
    "    x = np.random.exponential() + 4.5 # Just add 4.5 to a standard exponential\n",
    "    f = np.exp(-0.5 * x ** 2 + x - 4.5) / np.sqrt(2. * np.pi)\n",
    "    s += f\n",
    "    s2 += f ** 2\n",
    "I_n = s / num_mc\n",
    "V_n = (s2 / num_mc - I_n ** 2) / num_mc\n",
    "print('I_n = %1.4e +- %1.4e' % (I_n, 2*np.sqrt(V_n)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finite variance concerns\n",
    "The variance of an importance sampling estimator is:\n",
    "$$\n",
    "V_n = \\mathbb{V}[I_n] = \\frac{1}{n}\\mathbb{V}_q\\left[\\frac{f(X_j)p(X_j)}{q(X_j)}\\right]=\\frac{1}{n}\\left(\\mathbb{E}_q\\left[\\frac{f^2(X_j)p^2(X_j)}{q^2(X_j)}\\right]-\\left(\\mathbb{E}_q\\left[\\frac{f(X_j)p(X_j)}{q(X_j)}\\right]\\right)^2\\right).\n",
    "$$\n",
    "So, in order to have a finite variance estimator, we must have that:\n",
    "$$\n",
    "\\mathbb{E}_q\\left[\\frac{f^2(X_j)p^2(X_j)}{q^2(X_j)}\\right] = \\int f^2(x)\\frac{p^2(x)}{q(x)}dx < \\infty.\n",
    "$$\n",
    "Unless, this condition is satisfied, you will get garbage."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example: Infinite Variance Estimator.\n",
    "It is absolutely crucial that the variance of your estimator is finite.\n",
    "Otherwise, you cannot trust it even if it theoretically converges.\n",
    "Let us demonstrate this by constructing a really stupid importance sampling desnity.\n",
    "Let $X\\sim\\mathcal{E}(1)$ (exponential with unit rate) so that the density is:\n",
    "$$\n",
    "p(x) = e^{-x}_{[0,\\infty)}(x).\n",
    "$$\n",
    "Pick $f(x)=x$ so that we want to compute the mean $\\mathbb{E}[f(X)] = \\mathbb{E}_p[X]=1$ (analytically known).\n",
    "As importance sampling density let's use the density of a $\\mathcal{N}(0,1)$:\n",
    "$$\n",
    "q(x) = \\frac{1}{\\sqrt{2\\pi}}e^{-\\frac{1}{2}x^2}.\n",
    "$$\n",
    "Let's look at that integral that dominates the variance:\n",
    "$$\n",
    "\\int f^2(x)\\frac{p^2(x)}{q(x)}dx = \\int_0^\\infty x^2 \\frac{e^{-2x}}{\\frac{1}{\\sqrt{2\\pi}}e^{-\\frac{1}{2}x^2}}dx = \\infty.\n",
    "$$\n",
    "Let's implement an MC estimate using this importance sampling density and see what we get."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# How many times to try\n",
    "num_tries = 10\n",
    "# How many MC steps to take per try \n",
    "num_mc = 1000\n",
    "# For plotting purposes\n",
    "fig, ax = plt.subplots()\n",
    "for i in range(num_tries):\n",
    "    I = np.ndarray((num_mc, ))\n",
    "    s = 0.\n",
    "    for j in range(num_mc):\n",
    "        x = np.random.randn()\n",
    "        if x >= 0.:\n",
    "            y = x * np.exp(-x) / st.norm.pdf(x)\n",
    "            s += y\n",
    "        I[j] = s / (j + 1)\n",
    "    plt.plot(np.arange(1, num_mc + 1), I, color=sns.color_palette()[0], lw=1)\n",
    "ax.set_xlabel('$n$')\n",
    "ax.set_ylabel('$I_n$')\n",
    "plt.plot(np.arange(1, num_mc + 1), np.ones((num_mc, )), color='r');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Questions\n",
    "\n",
    "+ Do a single trial for a large number of samples. Does it converge? Remember, that in reality you never know the truth (red line). If you think that you have found a number of samples that guarantees convergence, run it once more. Does it converge now?\n",
    "\n",
    "+ Increase the number of tries to 10, 100, 1000 (decrease the number of samples per trial if it becomes to slow). What do you observe?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The Best Importance Sampling Distribution\n",
    "So, the choice of $q(x)$ is completely up to us.\n",
    "What if we picked it so that we minimize the variance of the estimator?\n",
    "That is, we would like to find the $q^*(x)$ that solves minimizes:\n",
    "$$\n",
    "\\min_{q}\\int f^2(x)\\frac{p^2(x)}{q(x)}dx.\n",
    "$$\n",
    "We will do it by taking the derivative of the functional:\n",
    "$$\n",
    "J[q] = \\int f^2(x)\\frac{p^2(x)}{q(x)}dx,\n",
    "$$\n",
    "with respect to an arbitrary direction and setting it equal to zero.\n",
    "To this end, let $\\eta(x)$ be any non-negative function such that\n",
    "$$\n",
    "\\int \\eta(x)dx = 0.\n",
    "$$\n",
    "Then, for any $\\epsilon>0$, we have that the pertubation $q(x) + \\epsilon\\eta(x)$ is a valid probability density since:\n",
    "$$\n",
    "\\int (q(x) + \\epsilon\\eta(x)) dx = \\int q(x) dx + \\epsilon\\int\\eta(x)dx = 1.\n",
    "$$\n",
    "The first variation of $J[q]$ in the direction of $\\eta(x)$ is:\n",
    "$$\n",
    "\\begin{array}[ccc]\n",
    "\\delta J[q]/\\delta \\eta &=& \\lim_{\\epsilon\\rightarrow 0}\\frac{J[q + \\epsilon\\eta]-J[q]}{\\epsilon}\\\\\n",
    "&=& \\lim_{\\epsilon\\rightarrow 0}\\frac{\\int \\left[f^2(x)\\frac{p^2(x)}{q(x)+\\epsilon\\eta(x)}-f^2(x)\\frac{p^2(x)}{q(x)}\\right]dx}{\\epsilon}\\\\\n",
    "&=& \\lim_{\\epsilon\\rightarrow 0}\\frac{\\int f^2(x)p^2(x)\\left[\\frac{1}{q(x)+\\epsilon\\eta(x)}-\\frac{1}{q(x)}\\right]dx}{\\epsilon}\\\\\n",
    "&=& \\lim_{\\epsilon\\rightarrow 0}\\frac{\\int f^2(x)p^2(x)\\left[\\frac{q(x)-q(x)-\\epsilon\\eta(x)}{\\left(q(x)+\\epsilon\\eta(x)\\right)q(x)}\\right]dx}{\\epsilon}\\\\\n",
    "&=&-\\lim_{\\epsilon\\rightarrow 0}\\int f^2(x)p^2(x)\\left[\\frac{\\eta(x)}{\\left(q(x)+\\epsilon\\eta(x)\\right)q(x)}\\right]dx\\\\\n",
    "&=&-\\int f^2(x)p^2(x)\\left[\\frac{\\eta(x)}{q^2(x)}\\right]dx.\n",
    "\\end{array}\n",
    "$$\n",
    "For an extremum, the first variation must be equal to zero (necessary condition) for all possible $\\eta$'s.\n",
    "We see that this is trivially satisfied for:\n",
    "$$\n",
    "q^*(x) \\propto |f(x)|p(x).\n",
    "$$\n",
    "To show that the above defined $q^*$ is a minimum, we need to take the second variation of $J[q]$ and show that it is positive for all $\\eta$'s.\n",
    "We leave this as an excersise.\n",
    "\n",
    "### Questions\n",
    "\n",
    "+ Is it really possible to use the minimum variance importance sampling density? "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Latin Hyper-Cube Designs\n",
    "\n",
    "Latin hyper-cube designs (LHS) are quasi-random sequences that resemble uniform random nummbers, but have better convergence properties than truly random numbers.\n",
    "\n",
    "+ A **latin square** is a square grid containing samples only one sample in each row and each column.\n",
    "+ A **latin hypercube** is the generalisation of this concept to many dimensions.\n",
    "\n",
    "Here is how they look like in 2D."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pyDOE # Library the implements latin hyper-cube designs you must install it: pip install py-design\n",
    "fig, ax = plt.subplots()\n",
    "ax.grid(which='major')\n",
    "for i in range(1):\n",
    "    X = pyDOE.lhs(2, 5) # 2 is the dimension, 5 is the number of samples, \n",
    "    ax.scatter(X[:,0], X[:,1], 50., color=sns.color_palette()[i])\n",
    "ax.set_xlabel('$x_1$')\n",
    "ax.set_ylabel('$x_2$');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's compare to uniform samples in 2D:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_samples = 5\n",
    "fig, ax = plt.subplots()\n",
    "X_lhs = pyDOE.lhs(2, num_samples, 'c')\n",
    "ax.scatter(X_lhs[:,0], X_lhs[:,1], 50., color=sns.color_palette()[0])\n",
    "X_lhs = pyDOE.lhs(2, num_samples, 'c')\n",
    "ax.grid(which='major')\n",
    "ax.scatter(X_lhs[:,0], X_lhs[:,1], 50., color=sns.color_palette()[2])\n",
    "ax.set_title('Latin hypercube samples')\n",
    "ax.set_xlim(0, 1)\n",
    "ax.set_ylim(0, 1)\n",
    "ax.set_xlabel('$x_1$')\n",
    "ax.set_ylabel('$x_2$');\n",
    "fig2, ax2 = plt.subplots()\n",
    "X_unif = np.random.rand(num_samples, 2)\n",
    "ax2.grid(which='major')\n",
    "ax2.scatter(X_unif[:,0], X_unif[:,1], 50., color=sns.color_palette()[1])\n",
    "X_unif = np.random.rand(num_samples, 2)\n",
    "ax2.scatter(X_unif[:,0], X_unif[:,1], 50., color=sns.color_palette()[3])\n",
    "ax2.set_title('Uniform samples')\n",
    "ax2.set_xlim(0, 1)\n",
    "ax2.set_ylim(0, 1)\n",
    "ax2.set_xlabel('$x_1$')\n",
    "ax2.set_ylabel('$x_2$');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Uniform Sampling vs Latin Hyper-cubes\n",
    "Consider the ODE:\n",
    "  \\begin{align*}\n",
    "    \\dot{y} = \\frac{d y(t)}{dt} & =-ay(t),\\qquad y(0) = y_0.\n",
    "  \\end{align*}\n",
    "The solution is: $y(t) = Ie^{-at}$.\n",
    "Let's make $a$ and $I$ random and use MC and LHS to find the mean, $E[y(t)]$, and the variance $V[y(t)]$.\n",
    "We'll take:\n",
    "$$\n",
    "a \\sim \\mathcal{U}(0, 0.1),\n",
    "$$\n",
    "and\n",
    "$$\n",
    "y_0 \\sim \\mathcal{U}(8, 10).\n",
    "$$\n",
    "For convenience, let's map these random variables to standardized uniform random variables:\n",
    "$$\n",
    "x_i \\sim \\mathcal{U}(0, 1), i=1,2.\n",
    "$$\n",
    "This can be done by defining:\n",
    "$$\n",
    "a = 0.1 x_1.\n",
    "$$\n",
    "Using the new random variables, the ODE can be written as:\n",
    "$$\n",
    "\\dot{y} = -0.1 x_1 y, y(0) = 8 + 2x_2.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The \"Solver\" object\n",
    "Let's develop a solver for this problem. We'll make the solver work as a nice function that accepts a vector $\\mathbf{x} = (x_1, x_2)$ as an input, and returns the solution of the ODE on a finite set of timesteps $0=t_1<t_2<\\dots<t_{n_t}=T$. The solver, will make use of the functionality of [scipy.integrate.odeint](http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.integrate.odeint.html). This is a trivial problem, but studying its structure will teach you a few useful Python tricks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import scipy.integrate\n",
    "\n",
    "class Ex1Solver(object):\n",
    "    \"\"\"\n",
    "    An object that can solver the afforementioned ODE problem.\n",
    "    It will work just like a multivariate function.\n",
    "    \"\"\"\n",
    "    \n",
    "    def __init__(self, nt=100, T=5):\n",
    "        \"\"\"\n",
    "        This is the initializer of the class.\n",
    "        \n",
    "        Arguments:\n",
    "            nt - The number of timesteps.\n",
    "            T  - The final time.\n",
    "        \"\"\"\n",
    "        self.nt = nt\n",
    "        self.T = T\n",
    "        self.t = np.linspace(0, T, nt) # The timesteps on which we will get the solution\n",
    "        # The following are not essential, but they are convenient\n",
    "        self.num_input = 2             # The number of inputs the class accepts\n",
    "        self.num_output = nt           # The number of outputs the class returns\n",
    "    \n",
    "    def __call__(self, x):\n",
    "        \"\"\"\n",
    "        This special class method emulates a function call.\n",
    "        \n",
    "        Arguments:\n",
    "            x - A 1D numpy array with 2 elements. This represents the stochastic input x = (x1, x2).\n",
    "        \"\"\"\n",
    "        def rhs(y, t, x1):\n",
    "            \"\"\"\n",
    "            This is the right hand side of the ODE.\n",
    "            \"\"\"\n",
    "            return -.1 * x1 * y\n",
    "        # The initial condition\n",
    "        y0 = [8 + 2 * x[1]]\n",
    "        # We are ready to solve the ODE\n",
    "        y = scipy.integrate.odeint(rhs, y0, self.t, args=(x[0],)).flatten()\n",
    "        # The only strange thing here is the use of ``args`` to pass they x1 argument to the rhs().\n",
    "        # That's it\n",
    "        return y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since this is the first time we see a Python class, let's play with it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of timesteps: 100\n",
      "Final time: 5\n",
      "Timesteps: [0.         0.05050505 0.1010101  0.15151515 0.2020202  0.25252525\n",
      " 0.3030303  0.35353535 0.4040404  0.45454545 0.50505051 0.55555556\n",
      " 0.60606061 0.65656566 0.70707071 0.75757576 0.80808081 0.85858586\n",
      " 0.90909091 0.95959596 1.01010101 1.06060606 1.11111111 1.16161616\n",
      " 1.21212121 1.26262626 1.31313131 1.36363636 1.41414141 1.46464646\n",
      " 1.51515152 1.56565657 1.61616162 1.66666667 1.71717172 1.76767677\n",
      " 1.81818182 1.86868687 1.91919192 1.96969697 2.02020202 2.07070707\n",
      " 2.12121212 2.17171717 2.22222222 2.27272727 2.32323232 2.37373737\n",
      " 2.42424242 2.47474747 2.52525253 2.57575758 2.62626263 2.67676768\n",
      " 2.72727273 2.77777778 2.82828283 2.87878788 2.92929293 2.97979798\n",
      " 3.03030303 3.08080808 3.13131313 3.18181818 3.23232323 3.28282828\n",
      " 3.33333333 3.38383838 3.43434343 3.48484848 3.53535354 3.58585859\n",
      " 3.63636364 3.68686869 3.73737374 3.78787879 3.83838384 3.88888889\n",
      " 3.93939394 3.98989899 4.04040404 4.09090909 4.14141414 4.19191919\n",
      " 4.24242424 4.29292929 4.34343434 4.39393939 4.44444444 4.49494949\n",
      " 4.54545455 4.5959596  4.64646465 4.6969697  4.74747475 4.7979798\n",
      " 4.84848485 4.8989899  4.94949495 5.        ]\n",
      "Num inputs: 2\n",
      "Num outputs: 100\n"
     ]
    }
   ],
   "source": [
    "# Here is how you can initialize it:\n",
    "solver = Ex1Solver()\n",
    "# You can access its arguments:\n",
    "print(\"Number of timesteps:\", solver.nt)\n",
    "print(\"Final time:\", solver.T)\n",
    "print(\"Timesteps:\", solver.t)\n",
    "print(\"Num inputs:\", solver.num_input)\n",
    "print(\"Num outputs:\", solver.num_output)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of timesteps: 200\n",
      "Final time: 50\n",
      "Timesteps: [ 0.          0.25125628  0.50251256  0.75376884  1.00502513  1.25628141\n",
      "  1.50753769  1.75879397  2.01005025  2.26130653  2.51256281  2.7638191\n",
      "  3.01507538  3.26633166  3.51758794  3.76884422  4.0201005   4.27135678\n",
      "  4.52261307  4.77386935  5.02512563  5.27638191  5.52763819  5.77889447\n",
      "  6.03015075  6.28140704  6.53266332  6.7839196   7.03517588  7.28643216\n",
      "  7.53768844  7.78894472  8.04020101  8.29145729  8.54271357  8.79396985\n",
      "  9.04522613  9.29648241  9.54773869  9.79899497 10.05025126 10.30150754\n",
      " 10.55276382 10.8040201  11.05527638 11.30653266 11.55778894 11.80904523\n",
      " 12.06030151 12.31155779 12.56281407 12.81407035 13.06532663 13.31658291\n",
      " 13.5678392  13.81909548 14.07035176 14.32160804 14.57286432 14.8241206\n",
      " 15.07537688 15.32663317 15.57788945 15.82914573 16.08040201 16.33165829\n",
      " 16.58291457 16.83417085 17.08542714 17.33668342 17.5879397  17.83919598\n",
      " 18.09045226 18.34170854 18.59296482 18.84422111 19.09547739 19.34673367\n",
      " 19.59798995 19.84924623 20.10050251 20.35175879 20.60301508 20.85427136\n",
      " 21.10552764 21.35678392 21.6080402  21.85929648 22.11055276 22.36180905\n",
      " 22.61306533 22.86432161 23.11557789 23.36683417 23.61809045 23.86934673\n",
      " 24.12060302 24.3718593  24.62311558 24.87437186 25.12562814 25.37688442\n",
      " 25.6281407  25.87939698 26.13065327 26.38190955 26.63316583 26.88442211\n",
      " 27.13567839 27.38693467 27.63819095 27.88944724 28.14070352 28.3919598\n",
      " 28.64321608 28.89447236 29.14572864 29.39698492 29.64824121 29.89949749\n",
      " 30.15075377 30.40201005 30.65326633 30.90452261 31.15577889 31.40703518\n",
      " 31.65829146 31.90954774 32.16080402 32.4120603  32.66331658 32.91457286\n",
      " 33.16582915 33.41708543 33.66834171 33.91959799 34.17085427 34.42211055\n",
      " 34.67336683 34.92462312 35.1758794  35.42713568 35.67839196 35.92964824\n",
      " 36.18090452 36.4321608  36.68341709 36.93467337 37.18592965 37.43718593\n",
      " 37.68844221 37.93969849 38.19095477 38.44221106 38.69346734 38.94472362\n",
      " 39.1959799  39.44723618 39.69849246 39.94974874 40.20100503 40.45226131\n",
      " 40.70351759 40.95477387 41.20603015 41.45728643 41.70854271 41.95979899\n",
      " 42.21105528 42.46231156 42.71356784 42.96482412 43.2160804  43.46733668\n",
      " 43.71859296 43.96984925 44.22110553 44.47236181 44.72361809 44.97487437\n",
      " 45.22613065 45.47738693 45.72864322 45.9798995  46.23115578 46.48241206\n",
      " 46.73366834 46.98492462 47.2361809  47.48743719 47.73869347 47.98994975\n",
      " 48.24120603 48.49246231 48.74371859 48.99497487 49.24623116 49.49748744\n",
      " 49.74874372 50.        ]\n",
      "Num inputs: 2\n",
      "Num outputs: 200\n"
     ]
    }
   ],
   "source": [
    "# If you wish, you may intiialize it with a different initial arguments:\n",
    "solver = Ex1Solver(nt=200, T=50)\n",
    "print(\"Number of timesteps:\", solver.nt)\n",
    "print(\"Final time:\", solver.T)\n",
    "print(\"Timesteps:\", solver.t)\n",
    "print(\"Num inputs:\", solver.num_input)\n",
    "print(\"Num outputs:\", solver.num_output)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[9.         8.88764176 8.77668666 8.66711647 8.55891419 8.45206273\n",
      " 8.34654522 8.24234502 8.13944568 8.03783094 7.9374848  7.8383914\n",
      " 7.74053511 7.64390048 7.54847226 7.45423538 7.36117497 7.26927633\n",
      " 7.17852497 7.08890658 7.00040701 6.91301231 6.82670868 6.7414825\n",
      " 6.6573203  6.57420881 6.49213489 6.41108558 6.3310481  6.25200982\n",
      " 6.17395828 6.09688115 6.02076628 5.94560164 5.87137538 5.79807577\n",
      " 5.72569126 5.65421041 5.58362194 5.51391471 5.44507772 5.37710012\n",
      " 5.30997115 5.24368025 5.17821693 5.11357087 5.04973187 4.98668985\n",
      " 4.92443486 4.86295708 4.8022468  4.74229444 4.68309054 4.62462576\n",
      " 4.56689086 4.50987674 4.4535744  4.39797495 4.34306962 4.28884974\n",
      " 4.23530676 4.18243223 4.13021781 4.07865524 4.02773638 3.97745321\n",
      " 3.92779777 3.87876223 3.83033886 3.78252001 3.73529813 3.68866578\n",
      " 3.6426156  3.59714032 3.55223278 3.50788589 3.46409264 3.42084611\n",
      " 3.37813949 3.33596603 3.29431907 3.25319203 3.21257843 3.17247185\n",
      " 3.13286597 3.09375454 3.05513139 3.01699042 2.97932561 2.94213102\n",
      " 2.90540078 2.86912908 2.83331021 2.79793852 2.7630084  2.72851437\n",
      " 2.69445096 2.66081281 2.62759461 2.59479111 2.56239714 2.53040758\n",
      " 2.49881739 2.46762157 2.43681521 2.40639345 2.37635147 2.34668455\n",
      " 2.317388   2.28845719 2.25988756 2.2316746  2.20381386 2.17630094\n",
      " 2.1491315  2.12230124 2.09580594 2.06964141 2.04380353 2.01828822\n",
      " 1.99309144 1.96820922 1.94363764 1.91937282 1.89541092 1.87174817\n",
      " 1.84838083 1.82530521 1.80251768 1.78001463 1.75779251 1.73584782\n",
      " 1.7141771  1.69277691 1.67164389 1.6507747  1.63016604 1.60981467\n",
      " 1.58971737 1.56987096 1.55027233 1.53091837 1.51180603 1.4929323\n",
      " 1.47429418 1.45588875 1.4377131  1.41976435 1.40203968 1.38453629\n",
      " 1.36725142 1.35018233 1.33332635 1.31668079 1.30024304 1.28401051\n",
      " 1.26798062 1.25215086 1.23651871 1.22108172 1.20583745 1.1907835\n",
      " 1.17591748 1.16123706 1.1467399  1.13242374 1.1182863  1.10432535\n",
      " 1.09053869 1.07692415 1.06347958 1.05020286 1.03709188 1.02414458\n",
      " 1.01135892 0.99873289 0.98626447 0.97395172 0.96179268 0.94978543\n",
      " 0.93792809 0.92621878 0.91465565 0.90323687 0.89196065 0.88082521\n",
      " 0.86982879 0.85896964 0.84824606 0.83765636 0.82719887 0.81687192\n",
      " 0.8066739  0.7966032  0.78665822 0.77683739 0.76713918 0.75756203\n",
      " 0.74810445 0.73876494]\n"
     ]
    }
   ],
   "source": [
    "# Now let's evaluate the solver at a specific input.\n",
    "# You can just use it as a function\n",
    "x = [0.5, 0.5]\n",
    "y = solver(x)\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '$y(t)$')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot it:\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(solver.t, y)\n",
    "ax.set_xlabel('$t$')\n",
    "ax.set_ylabel('$y(t)$')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now, let's just plot a few random samples.\n",
    "fig, ax = plt.subplots()\n",
    "for i in range(10):\n",
    "    x = np.random.rand(2)\n",
    "    y = solver(x)\n",
    "    plt.plot(solver.t, y)\n",
    "ax.set_xlabel('$t$')\n",
    "ax.set_ylabel('$y(t)$');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Propagating Uncertainties with MC\n",
    "\n",
    "Let's propagate the uncertainties through the ODE using MC."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sample 1 from 10000\n",
      "sample 1001 from 10000\n",
      "sample 2001 from 10000\n",
      "sample 3001 from 10000\n",
      "sample 4001 from 10000\n",
      "sample 5001 from 10000\n",
      "sample 6001 from 10000\n",
      "sample 7001 from 10000\n",
      "sample 8001 from 10000\n",
      "sample 9001 from 10000\n"
     ]
    }
   ],
   "source": [
    "# Let's now do Monte Carlo to compute the mean and the variance\n",
    "# This is to accumulate the sum of all outputs\n",
    "y_mc = np.zeros(solver.num_output)\n",
    "# This is to accumlate the square of all outputs\n",
    "y2_mc = np.zeros(solver.num_output)\n",
    "# Pick the number of samples you wish to do:\n",
    "num_samples = 10000\n",
    "# Let's do it\n",
    "data_mc = []\n",
    "for i in range(num_samples):\n",
    "    if i % 1000 == 0:\n",
    "        print('sample', i + 1, 'from', num_samples)\n",
    "    x = np.random.rand(2)\n",
    "    y = solver(x)\n",
    "    y_mc += y\n",
    "    y2_mc += y ** 2\n",
    "    data_mc.append(y)\n",
    "data_mc = np.array(data_mc)\n",
    "# Now we are ready for the mean estimate:\n",
    "y_m_mc = y_mc / num_samples\n",
    "# And the variance estimate\n",
    "y_v_mc = y2_mc / num_samples - y_m_mc ** 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '$\\\\mathbb{E}[y(t)]$')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot the mean\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(solver.t, y_m_mc)\n",
    "ax.set_xlabel('$t$')\n",
    "ax.set_ylabel('$\\mathbb{E}[y(t)]$')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '$\\\\mathbb{V}[y(t)]$')"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot the variance\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(solver.t, y_v_mc)\n",
    "ax.set_xlabel('$t$')\n",
    "ax.set_ylabel('$\\mathbb{V}[y(t)]$')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PolyCollection at 0x1a163b79d0>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now, let's draw the predictive envelop\n",
    "# We need the standard deviation:\n",
    "y_s_mc = np.sqrt(y_v_mc)\n",
    "# A lower bound for the prediction\n",
    "y_l_mc = np.percentile(data_mc, 2.75, axis=0)\n",
    "# An upper bound for the prediction\n",
    "y_u_mc = np.percentile(data_mc, 97.5, axis=0)\n",
    "# And let's plot it:\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(solver.t, y_m_mc)\n",
    "ax.fill_between(solver.t, y_l_mc, y_u_mc, alpha=0.25)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Propagating Uncertainties with LHS\n",
    "\n",
    "Let's propagate the uncertainties through the ODE using LHS.\n",
    "All we have to do is to copy and paste the above code and make some modifications."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sample 1 from 10000\n",
      "sample 1001 from 10000\n",
      "sample 2001 from 10000\n",
      "sample 3001 from 10000\n",
      "sample 4001 from 10000\n",
      "sample 5001 from 10000\n",
      "sample 6001 from 10000\n",
      "sample 7001 from 10000\n",
      "sample 8001 from 10000\n",
      "sample 9001 from 10000\n"
     ]
    }
   ],
   "source": [
    "# Let's now do LHS to compute the mean and the variance\n",
    "# This is to accumulate the sum of all outputs\n",
    "y_lhs = np.zeros(solver.num_output)\n",
    "# This is to accumlate the square of all outputs\n",
    "y2_lhs = np.zeros(solver.num_output)\n",
    "# Pick the number of samples you wish to do:\n",
    "num_samples = 10000\n",
    "# You have to create the LHS design prior to looping:\n",
    "X = pyDOE.lhs(2, num_samples)\n",
    "# Let's do it\n",
    "data_lhs = []\n",
    "for i in range(num_samples):\n",
    "    if i % 1000 == 0:\n",
    "        print('sample', i + 1, 'from', num_samples)\n",
    "    x = X[i, :]\n",
    "    y = solver(x)\n",
    "    y_lhs += y\n",
    "    y2_lhs += y ** 2\n",
    "    data_lhs.append(y)\n",
    "data_lhs = np.array(data_lhs)\n",
    "# Now we are ready for the mean estimate:\n",
    "y_m_lhs = y_lhs / num_samples\n",
    "# And the variance estimate\n",
    "y_v_lhs = y2_lhs / num_samples - y_m_lhs ** 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '$\\\\mathbb{E}[y(t)]$')"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot the mean\n",
    "plt.plot(solver.t, y_m_lhs)\n",
    "plt.xlabel('$t$')\n",
    "plt.ylabel('$\\mathbb{E}[y(t)]$')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '$\\\\mathbb{V}[y(t)]$')"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot the variance\n",
    "plt.plot(solver.t, y_v_lhs)\n",
    "plt.xlabel('$t$')\n",
    "plt.ylabel('$\\mathbb{V}[y(t)]$')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PolyCollection at 0x1a18b1c790>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now, let's draw the predictive envelop\n",
    "# We need the standard deviation:\n",
    "y_s_lhs = np.sqrt(y_v_lhs)\n",
    "y_l_lhs = np.percentile(data_lhs, 2.75, axis=0)\n",
    "# An upper bound for the prediction\n",
    "y_u_lhs = np.percentile(data_lhs, 97.5, axis=0)\n",
    "# And let's plot it:\n",
    "plt.plot(solver.t, y_m_lhs)\n",
    "plt.fill_between(solver.t, y_l_lhs, y_u_lhs, alpha=0.25)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Comparing MC to LHS\n",
    "\n",
    "So, which one is better? MC or LHS? To test this, we need to establish a ground truth.\n",
    "Fortunately, we can get an analytic solution to:\n",
    "$$\n",
    "\\dot{y} = -0.1 x_1 y, y(0) = 8 + 2x_2.\n",
    "$$\n",
    "It is:\n",
    "$$\n",
    "y(t;x_1,x_2) = (8 + 2x_2)e^{-0.1 x_1 t}.\n",
    "$$\n",
    "We can integrate $x_1$ and $x_2$ analytically from this expression.\n",
    "\n",
    "Doing so, we get the following mean solution and variance:\n",
    "$$\n",
    "\\mu = \\mathbb{E}[y] = \\frac{90}{t} (1 - \\exp^{-0.1t}), \\\\\n",
    "\\mathrm{S} = \\mathbb{V}[y] =  \\frac{2440}{6t}(1 - \\exp^{-0.2t}) - \\mu^2\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def E_y(t):\n",
    "    if t == 0:\n",
    "        return 9.\n",
    "    return (90*(1-np.exp(-0.1*t))) / t\n",
    "E_y =  np.vectorize(E_y)\n",
    "\n",
    "def V_y(t):\n",
    "    if t == 0:\n",
    "        return (2440*0.2)/6. - E_y(t) **2\n",
    "    \n",
    "    return (2440.*(1-np.exp(-0.2*t)))/(6.*t) - E_y(t)**2\n",
    "V_y = np.vectorize(V_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1a1655c8d0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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8c8///74nzVrFo888ghz586lQ4cO3HfffWiahqIoLF++3LHeiRMnmDRpEl27diU0NJRevXqxYMEC0tLSHOsoisKnn37K7Nmz6dSpE+3atWPKlCnExmZNbxs2bGDYsGG0adOG2267jbfffhur1epYrqoqjz76KO3ataNDhw5MmTKFS5cu5ft6lJRC18gVRZkKvAZsB4arqnq9tIKqCN7dOR9coL7ZyhPDn9E7HFFEFquNS9eL16e3JNXw98DVVLpdJH/44QcGDx7MsmVFu4Yzf/58vv76a5544gnatGnD7t27mTt3LqmpqYwaNSrXbYYOHcrq1atJSUlx3MF45MgRzp07x/z58wGYMWMGhw4dYurUqdStW5eIiAjeeustpk+fzvfff4/BYABg7969dO3alXfeeYfU1FRHeabo6GgefPBB2rdvz6JFi3B1dWXnzp2sXr2aatWq8eijjzrWfe211+jXrx9LliwhIiKChQsX4ubmxuLFiwFYv349L7zwAvfeey/Tp08nLCyMxYsXk5qayowZMwgPD+f++++ncePGLF68GLPZzNKlS3nwwQfZsGEDvr6+RXpti6qwNwSNw953/DNgtKqq5lKNysntOfkrB12uAtDPrSv+ftJv3JlYrDb6vrGDiNhkvUMhpIoXP0/tXarJ3MXFhRdffBEPDw/AniALEh4ezueff86MGTN45JFHAOjRowdWq5W33nqLu+++O9dbze+66y6WLVvGr7/+yuDBgwHYtGkT1apVo1u3bqSlpZGSksLcuXMZOHAgYL8wm5iYyMKFC7l27ZpjPJL09HSef/556tSpk2uMqqrSokUL3nrrLby9vQG45ZZb2L17N/v378+SyJs1a8Yrr7wCQPfu3Tl69Cg///wzYP/lsWzZMgYOHMgLL7zgONf4+Hh2796Npmm88847eHl5sXr1asexOnXqRN++fVm3bh1PPPFEga/pzShMP/JqwNtABPabgtorinLjKqdVVY0pnfCc0/Lf5jlq42PvfV3vcITIV7169RxJvLD27NmDpmn06dOH9PR0R/ltt93G2rVrOXLkCF26dMmxXUhICG3btmXjxo0MHjwYTdPYvHkzd955J0ajEXd3dz744APAXqMODw/n7Nmz/PrrrwBYLBbHvry8vPJM4gC9evWiV69eWCwWTp8+TUREBCdPnuTq1asEBwdnWbd9+/ZZ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1atXa3feeafWvHlz7e2333aUr1ixQmvatKm2bdu2HNvs3LlTa9q0qbZs2bJ8j71p0yatW7dumtlsdpSlpKRoy5Yt00JDQ7XOnTtrzZs3z7Fd3759tf/+979ZyqZMmaINHDgwz2NFRkZqzZs31z755BNHWVpamnbrrbdqzz33nKZpmpaUlKR16NBBW7x4sWMdm82mjRw5Uhs3blyRj//iiy9qEyZMyO8lKJaCPo8dOnTQmjZtGqflklelRl5I3/z+HqdczQD0D74bD3d3nSMSpe5aRP5/5qR/17VZC17fcsMcoFZLweunm28qfB8fH3r06JFrjXbTpk0MGjQoS5nFYmH16tX06dOH2267Lcc2PXv2ZOLEiVlm7snNqlWrGDBgAK6u/14/2rRpE2vXrmX27Nm5NvdERkZy7tw5+vfvn6V8wIABhIWFZald32jPnj1YrVYGDBjgKHNzc+PWW291zMxz+PBhEhISsuzbYDDQr18//vjjD8xmc5GOP2TIELZv387JkyfzfR3KkrQNFIKmaaw98R64QqsUGPXgHL1DEmXhrdb5Lx/5EbTImDQ49XrB64/5ARr0tP/7WgS80yH/9Z/4Harn3pZcWIMGDWLWrFnExsY6Jg+OioriyJEjLF68mHfeecex7t9//821a9e49dZb89zflCn538EcFhbGsWPHmD59epbyLl26sG3bNnx8fHJtkw8LCwOgQYMGWcozx+YODw/P9QskLCwMf39/goKCcmx34cIFUlNTHftu2LBhjnXS09OJjIzk/PnzhT5+mzZtqFGjBhs3bqRp06b5vBplR2rkhfD5jiWEuaYDMKjGg7i6yPefcA633XYbLi4u/PTTT46yzZs306JFixwTGGTO0VnQNG352bNnDwaDgVatWmUpr127dr6z8SQkJADkWCdzqrnExMRct8trlp/M7ZKSkhzbZpbltk5Rjx8aGsrevXvzPJ+yJhmpADbNxken14IrtEsx8sBDM/QOSZSVKTl7PmThHfzvvz38C17fp/q//w4MKXh935r5Ly+EG5tX7rvvPsDezDF48OAc67pkVFCKMjFxdpGRkQQEBBR6CrVMWsbFT4PBkGu50Zh7nTNzeX770zQtx35zW6cox69duzaHDx/O+4TKmCTyAhw7H4fxcldqV93NoLqPYDLJj5hKI7AIU8AZTUVb3+RatPVvwqBBg5g5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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's start by doing some plots that compare the variance obtained by MC and LHS to the true one\n",
    "plt.plot(solver.t, V_y(solver.t), label='True variance')\n",
    "plt.plot(solver.t, y_v_mc, '--', label='MC (10,000)')\n",
    "plt.plot(solver.t, y_v_lhs, '-.', label='LHS (10,000))')\n",
    "plt.legend(loc='best')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "They seem close. But this is for 10,000 samples.\n",
    "Let's test the convergence of each method. To do this, we will compute the evolution of the root square error in the variance:\n",
    "$$\n",
    "\\mbox{RSE}_\\alpha(n) = \\left(\\sum_{i=1}^{n_t}\\left(V[y(t_i)] - V_{\\alpha,n}[y(t_i)]\\right)^2\\right)^{\\frac{1}{2}},\n",
    "$$\n",
    "where $\\alpha = \\{\\mbox{MC}, \\mbox{LHS}\\}$ stands for the method, $n$ for the number of samples used, and $V_{\\alpha,n}[y(t_i)]$ for the estimate of the variance of $y(t_i)$.\n",
    "It will probably take a while to develop the code."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_MC_rse(max_num_samples=100):\n",
    "    \"\"\"\n",
    "    Get the maximum error of MC.\n",
    "    \"\"\"\n",
    "    y_v_true = V_y(solver.t)\n",
    "    y = np.zeros(solver.num_output)\n",
    "    y2 = np.zeros(solver.num_output)\n",
    "    n = []\n",
    "    rse = []\n",
    "    for i in range(max_num_samples):\n",
    "        x = np.random.rand(2)\n",
    "        y_sample = solver(x)\n",
    "        y += y_sample\n",
    "        y2 += y_sample ** 2\n",
    "        if i % 1 == 0:    # Produce estimate every 100 steps\n",
    "            n.append(i + 1)\n",
    "            y_m = y / (i + 1)\n",
    "            y_v = y2 / (i + 1) - y_m ** 2\n",
    "            rse.append(np.linalg.norm(y_v_true - y_v))\n",
    "    return n, rse\n",
    "\n",
    "def _get_LHS_rse(max_num_samples=100):\n",
    "    y_v_true = V_y(solver.t)\n",
    "    y = np.zeros(solver.num_output)\n",
    "    y2 = np.zeros(solver.num_output)\n",
    "    n = []\n",
    "    rse = []\n",
    "    X = pyDOE.lhs(2, num_samples)\n",
    "    for i in range(max_num_samples):\n",
    "        x = X[i, :]\n",
    "        y_sample = solver(x)\n",
    "        y += y_sample\n",
    "        y2 += y_sample ** 2\n",
    "        if i % 1 == 0:    # Produce estimate every 100 steps\n",
    "            n.append(i + 1)\n",
    "            y_m = y / (i + 1)\n",
    "            y_v = y2 / (i + 1) - y_m ** 2\n",
    "            rse.append(np.linalg.norm(y_v_true - y_v))\n",
    "    return n, rse\n",
    "\n",
    "def get_LHS_rse(max_num_samples=100):\n",
    "    n = []\n",
    "    rse = []\n",
    "    for i in range(max_num_samples):\n",
    "        if i % 1 == 0:\n",
    "            _n, _rse = _get_LHS_rse(i + 1)\n",
    "            n.append(_n[-1])\n",
    "            rse.append(_rse[-1])\n",
    "    return n, rse"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1a19b126d0>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_mc, rse_mc = get_MC_rse(50)\n",
    "n_lhs, rse_lhs = get_LHS_rse(50)\n",
    "plt.plot(n_mc, rse_mc, label='MC RSE')\n",
    "plt.plot(n_lhs, rse_lhs, label='LHS RSE')\n",
    "plt.xlabel('$n$')\n",
    "plt.ylabel('RSE')\n",
    "plt.legend(loc='best')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is hard to tell which one is better...\n",
    "There is a considerable ammount of epistemic uncertainty.\n",
    "How would you go about quantifying it?\n",
    "Notice, that everytime you run the above code, it produces a different estimate. This suggests, that if you repeat the procedure, say 100 times, you will be able to get predictive error bars for the error!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'RSE')"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEZCAYAAAC99aPhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3xkZb348c+ZnjLpZVM2yZbkbO8s22FpAqJw6QgLqKBcsVxUFOVnuVfUiwoqRVERUToIqBcpC8qyS9ne2HaSLambNimTNpl6fn+cM9lsym4yJTPJPu/Xa1+ZzDnzzDe7kO887ftIqqoiCIIgCKEyxDoAQRAEYXwTiUQQBEEIi0gkgiAIQlhEIhEEQRDCIhKJIAiCEBZTrAMYS7Is+9CSZ0esYxEEQRhHUoCAoihD5owzKpGgJRHJbrenxjoQQRCE8aKzsxNOMYJ1piWSDrvdnrp9+/ZYxyEIgjBuLFmyhM7OzmFHcsQciSAIghAWkUgEQRCEsIhEIgiCIIRFJBJBEAQhLCKRCIIgCGE501ZtCYIwTqiqisPhoLe3l0AgEOtwJhyDwYDJZCIlJYWkpKSw2hKJZIRauty8V96MP6BiNEgYDRIGKfiVE48NEkb9sSTR99hgkMhOtjI5IzHWP4ogxD1VVamrq6OzsxOr1YrRaIx1SBOO1+ulp6eH9vZ27HY7+fn5GAyhDVKJRDJC9z/7Bk2V+6lVszisFobczp8/t5RzyrIjGJkgTDwOh4POzk5yc3PJyMiIdTgTViAQoKWlBYfDgdPpJD09PaR2xBzJCH2z92GetPyMG23vMynFRrbdSmaShfREMyk2E8lWEwlmIxaTAbNR66UMZVN589gGLgjjUG9vL1arVSSRKDMYDGRlZWGxWOjq6gq5HdEjGaGcIhlat/PJ4lY+e+v5I3qNqqoEVPAHVH78zwP8+aMqlMbOKEcqCONfIBAQw1ljRJIkTCZTWPNQIpGMVFoxALauphG/RJIkjBIYDRIz8lIAqGgMPesLgiDEIzG0NVLpwUTSSCjn3Jfl2gFo6OjF6fJGNDRBEIRYEolkpNJLALD0OunuHv08R2luct/jCjG8JQjCBBLzRCLL8hpZlt+XZblHluXjsiw/LMtycr/rF8myvE2/fkyW5W/EJFB9aAugs3H/qF+eYjOTl2oDEPMkgnAGW7duHbIsc9NNNw17zw033IAsyzz88MMnPf/666/z2c9+luXLl7Nw4UI+9alP8fjjj+NyuaId9inFNJHIsrwMeBtoAD4N/A9wE/C4fn0F8BpwCLgSeAb4uSzL3xzzYJNzUY0WANwOJaQmgsNbYp5EEM5skiSxY8cOmpsHj240NDSwa9euk54LBALcddddfOtb36KoqIgf/ehHPProo1x00UU8+uij3H777TFNJrGebL8f2AxcoyiKCrwjy7IR+Losy4loiWWnoijr9PvflGXZDNwry/LDiqK4xyxSgwHSigi0VeLurA+pibLcZN4rb0ZpED0SQTiTzZkzB0VRWL9+PTfeeONJ1958801KS0s5cuRI33N/+MMfeP311/ntb3/Leeed1/f8ihUrWLBgAbfddht/+tOf+NKXvjRmP0N/MeuRyLKcBawGfqsnEQAURXlUUZRpQABYA7w84KV/BdKAFWMVa5D0+bfZuO4l6qevDen1fT2SJpFIBOFMlpyczKpVq3jzzTcHXXv99de55JJL+r73er386U9/Yu3atSclkaDVq1fzpS99icmTJ0c15lOJZY9kLiABrbIsvwBcBviAZ4GvA1MAMzBwHOmw/lUG3h2bUHWJGSCFnnuDicTR5aGly01msjVSkQnCGcPrD9Dg7I11GExKtWE2hv774JJLLuGee+6hpaWFzMxMAOrq6ti7dy8///nPeeSRRwDYv38/bW1tnHvuucO29bWvfS3kOCIhlokkWCfkSeBV4FPAfOA+IAH4nX594PGOwY/zKVGOL+L6r9wqb+xiuUgkgjAqXn+ACx58j6qWnliHQnFmIu98/ZyQk8l5552HyWTi7bff5vrrrwfgjTfeYNasWRQXn1jcU1+vDaXn5+eHH3SUxHKy3aJ//VBRlDsVRfm3oii/BL4H3IzWWwEYbtPG2JcD7Womr3w9JbueJRDwj/rliRYTkzMSADG8JQhnuqGGt15//XUuvfTSk+4zmbTP+/FcATmWPZLgb9LXBzz/FvAAcJb+/cCeR/B7Z5TiGl5HLfKHj2pvfu53SdX3loyGnGunptUlJtwFIQRmo4F3vn7OhBjaAm1469vf/jatra10dXVx4MCBviGtoGBPpK6ubth2HA4HqampmM3msOIJVSwTSYX+deD4TrCncgzwA9MHXA9+H9oa3HD020vS1bg/pERSmmvnnYNN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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_exper = 1\n",
    "num_samples = 20\n",
    "rse_mc_samples = []\n",
    "rse_lhs_samples = []\n",
    "for i in range(num_exper):\n",
    "    print(i)\n",
    "    n_mc, rse_mc = get_MC_rse(num_samples)\n",
    "    n_lhs, rse_lhs = get_LHS_rse(num_samples)\n",
    "    rse_mc_samples.append(rse_mc)\n",
    "    rse_lhs_samples.append(rse_lhs)\n",
    "rse_mc_samples = np.array(rse_mc_samples)\n",
    "rse_lhs_samples = np.array(rse_lhs_samples)\n",
    "rse_mc_m = np.mean(rse_mc_samples, axis=0)\n",
    "rse_mc_l = np.percentile(rse_mc_samples, 2.75, axis=0)\n",
    "rse_mc_u = np.percentile(rse_mc_samples, 97.5, axis=0)\n",
    "rse_lhs_m = np.mean(rse_lhs_samples, axis=0)\n",
    "rse_lhs_l = np.percentile(rse_lhs_samples, 2.75, axis=0)\n",
    "rse_lhs_u = np.percentile(rse_lhs_samples, 97.5, axis=0)\n",
    "plt.plot(n_mc, rse_mc_m, label='MC')\n",
    "plt.plot(n_lhs, rse_lhs_m, '--', label='LHS')\n",
    "plt.fill_between(n_mc, rse_mc_l, rse_mc_u, alpha=0.25)\n",
    "plt.fill_between(n_lhs, rse_lhs_l, rse_lhs_u, color='g', alpha=0.25)\n",
    "plt.legend(loc='best')\n",
    "plt.xlabel('$n$')\n",
    "plt.ylabel('RSE')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Questions\n",
    "\n",
    "+ To get a more accurate picture of the convergence rate of the two methods increaes the number of trials ``num_expr``. You will have to wait...\n",
    "\n",
    "+ LHS seems to perform better. Does it have a different convergence rate than MC?"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  },
  "latex_envs": {
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 0
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
